package foo;

import java.util.ArrayList;
import java.util.Scanner;


public class AreaDirectivo implements AreaDeTrabajo{
	private static ArrayList<Informe>matrizInformesDirectivo=new ArrayList<Informe>();
	int j;
	public void actualizarInformes(ArrayList<Informe>matrizInformes, int Permisos){
		for(j=0;j<matrizInformes.size();j++){
			if(matrizInformes.get(j).getPermisos()==444){
				matrizInformesDirectivo.add(matrizInformes.get(j));
			}
		}
	}
	public Informe mostrarInforme( int k){
		if(k>=0 && k<matrizInformesDirectivo.size()){
			return matrizInformesDirectivo.get(k);
		}
		else{
			return null;
		}
	}
	public int seleccionarInforme(int k){
		if(k>=0 && k<matrizInformesDirectivo.size()){
			return k;
			
		}
		else{
			return -1;
		}

}
	public int addInforme(ArrayList<Informe>matrizInformes,Informe in){
		if(in.getautor()==null||in.getcontenido()==null||in.getFechaCreacion()==null||in.getFechaModificacion()==null||in.getPermisos()!=444){
			return -1;
		}
		else{
			matrizInformesDirectivo.add(in);
			matrizInformes.add(in);
			return 1;
		}
	}
	public int borrarInforme(ArrayList<Informe>matrizInformes,Informe in){
		int j;
		int sizeInformes=matrizInformes.size();
		int sizeInformesAdministrador=matrizInformesDirectivo.size();
		for(j=0;j<matrizInformes.size();j++){
			//if(matrizInformes.get(j).getautor().equals(in.getautor())&&matrizInformes.get(j).getcontenido().equals(in.getcontenido())&&matrizInformes.get(j).getFechaCreacion().equals(in.getFechaCreacion())&&matrizInformes.get(j).getFechaModificacion().equals(in.getFechaModificacion())&&matrizInformes.get(j).getPermisos().equals(in.getPermisos()){
			if(matrizInformes.get(j).equals(in)){	
			matrizInformes.remove(j);
				
			}
		}
		for(j=0;j<matrizInformesDirectivo.size();j++){
			//if(matrizInformes.get(j).getautor().equals(in.getautor())&&matrizInformes.get(j).getcontenido().equals(in.getcontenido())&&matrizInformes.get(j).getFechaCreacion().equals(in.getFechaCreacion())&&matrizInformes.get(j).getFechaModificacion().equals(in.getFechaModificacion())&&matrizInformes.get(j).getPermisos().equals(in.getPermisos()){
			if(matrizInformesDirectivo.get(j).equals(in)){	
				matrizInformesDirectivo.remove(j);
				
			}
		}
		if((sizeInformes==matrizInformes.size()+1)&&(sizeInformesAdministrador==matrizInformesDirectivo.size())){
			return 1;
		}
		else{
			return -1;
		}
	}
	
	public int modificarInforme(Informe antiguo,Informe nuevo,ArrayList<Informe>matrizInformes){
		int valorMatrizInformes=-1;
		int valorMatrizInformesDirectivo=-1;
		int j,k;
		for(j=0;j<matrizInformes.size();j++){
			//if(matrizInformes.get(j).getautor().equals(in.getautor())&&matrizInformes.get(j).getcontenido().equals(in.getcontenido())&&matrizInformes.get(j).getFechaCreacion().equals(in.getFechaCreacion())&&matrizInformes.get(j).getFechaModificacion().equals(in.getFechaModificacion())&&matrizInformes.get(j).getPermisos().equals(in.getPermisos()){
			if(matrizInformes.get(j).equals(antiguo)){	
				valorMatrizInformes=j;
			}
		}
		for(k=0;j<matrizInformesDirectivo.size();k++){
			//if(matrizInformes.get(j).getautor().equals(in.getautor())&&matrizInformes.get(j).getcontenido().equals(in.getcontenido())&&matrizInformes.get(j).getFechaCreacion().equals(in.getFechaCreacion())&&matrizInformes.get(j).getFechaModificacion().equals(in.getFechaModificacion())&&matrizInformes.get(j).getPermisos().equals(in.getPermisos()){
			if(matrizInformesDirectivo.get(k).equals(antiguo)){	
				valorMatrizInformesDirectivo=k;
			}
		}
		if((valorMatrizInformes!=-1)&&(valorMatrizInformesDirectivo!=-1)){
			matrizInformes.remove(j);
			matrizInformesDirectivo.remove(k);
			matrizInformes.add(nuevo);
			matrizInformesDirectivo.add(nuevo);
			return 1;
		}
		else{
			return -1;
		}
		
	}
}
